package com.gopay.common.constants.riskcontrol;

import com.gopay.common.constants.txncd.IntTxnCd;

import java.util.HashMap;
import java.util.Map;

/**
 * @RclVoucherType
 * @AUTHOR LIUYONG
 * @2017/5/22 11:18 www.gopay.com.cn Inc.All rights reserved.
 * 交易的凭证类型，分为收付转三类，额度管理专用,钱包的交易码规则比较特殊，单独作为一个类型去处理
 */
public enum RclVoucherType {

    RECEIPT("01"),

    PAYMENT("02"),

    TRANSFER("03"),

    WALLET("04");

    public final String value;

    RclVoucherType(String value) {
        this.value = value;
    }

    @Override
    public String toString() {
        return this.value;
    }


    public static Map<String,RclVoucherType> translateTxntoVoucher(){
        Map<String,RclVoucherType> txnToVoucherMap = new HashMap<>();
        txnToVoucherMap.put(IntTxnCd._00100.value,RclVoucherType.RECEIPT);          //网关
        txnToVoucherMap.put(IntTxnCd._00500.value,RclVoucherType.RECEIPT);          //虚拟账户充值
        txnToVoucherMap.put(IntTxnCd._00800.value,RclVoucherType.PAYMENT);          //提现
        txnToVoucherMap.put(IntTxnCd._00700.value,RclVoucherType.PAYMENT);          //付款到银行
        txnToVoucherMap.put(IntTxnCd._00900.value,RclVoucherType.TRANSFER);         //付款到国付宝
        txnToVoucherMap.put(IntTxnCd._00901.value,RclVoucherType.TRANSFER);         //内部资金划转
        txnToVoucherMap.put(IntTxnCd._01604.value,RclVoucherType.RECEIPT);          //扫码支付-商户扫商户
        txnToVoucherMap.put(IntTxnCd._01602.value,RclVoucherType.RECEIPT);          //扫码支付-商户扫个人
        txnToVoucherMap.put(IntTxnCd._01603.value,RclVoucherType.RECEIPT);          //扫码支付-个人扫个人
        txnToVoucherMap.put(IntTxnCd._01601.value,RclVoucherType.RECEIPT);          //扫码支付-个人扫商户
        txnToVoucherMap.put(IntTxnCd._01724.value,RclVoucherType.PAYMENT);          //跨境人民币汇款
        txnToVoucherMap.put(IntTxnCd._01720.value,RclVoucherType.PAYMENT);          //跨境人民币支付（进口）
        txnToVoucherMap.put(IntTxnCd._00666.value,RclVoucherType.RECEIPT);          //委托代收

        txnToVoucherMap.put(IntTxnCd._01608.value,RclVoucherType.WALLET);          //发红包    ,内转
        txnToVoucherMap.put(IntTxnCd._01613.value,RclVoucherType.WALLET);          //加油卡充值  ,银行卡信息存在rece
        txnToVoucherMap.put(IntTxnCd._01611.value,RclVoucherType.WALLET);          //话费充值
        txnToVoucherMap.put(IntTxnCd._01612.value,RclVoucherType.WALLET);          //流量充值
        txnToVoucherMap.put(IntTxnCd._01618.value,RclVoucherType.WALLET);          //视频会员卡充值                                            //视频会员充值
        txnToVoucherMap.put(IntTxnCd._01606.value,RclVoucherType.WALLET);          //信用卡还款
        txnToVoucherMap.put(IntTxnCd._01605.value,RclVoucherType.WALLET);          //手机转账到银行卡
        txnToVoucherMap.put(IntTxnCd._01615.value,RclVoucherType.WALLET);          //理财支付，快捷银行卡
        txnToVoucherMap.put(IntTxnCd._01616.value,RclVoucherType.WALLET);          //理财兑付到国付宝
        txnToVoucherMap.put(IntTxnCd._01617.value,RclVoucherType.WALLET);          //理财兑付到银行
        txnToVoucherMap.put(IntTxnCd._01607.value,RclVoucherType.WALLET);          //我要收款，快捷银行卡
        txnToVoucherMap.put(IntTxnCd._01603.value,RclVoucherType.WALLET);          //手机转账到国付宝
        txnToVoucherMap.put(IntTxnCd._01601.value,RclVoucherType.WALLET);          //扫码支付-个人扫商户
        
        txnToVoucherMap.put(IntTxnCd._01723.value,RclVoucherType.PAYMENT);          //跨境人民币留学汇款
        txnToVoucherMap.put(IntTxnCd._00666.value,RclVoucherType.RECEIPT);          //委托代收
        txnToVoucherMap.put(IntTxnCd._01812.value,RclVoucherType.TRANSFER);         //云账户转账
        txnToVoucherMap.put(IntTxnCd._01726.value,RclVoucherType.PAYMENT);          //提现到境外
        txnToVoucherMap.put(IntTxnCd._01720.value,RclVoucherType.RECEIPT);          //跨境人民币支付（进口）
        txnToVoucherMap.put(IntTxnCd._01721.value,RclVoucherType.PAYMENT);          //跨境人民币出口
        txnToVoucherMap.put(IntTxnCd._01726.value,RclVoucherType.PAYMENT);          //提现到境外
        txnToVoucherMap.put(IntTxnCd._01722.value,RclVoucherType.TRANSFER);         //结汇到账户
        txnToVoucherMap.put(IntTxnCd._01725.value,RclVoucherType.PAYMENT);          //跨境人民币线下付款

        /*===add by jianghp 20170711 start====*/
        txnToVoucherMap.put(IntTxnCd._02004.value,RclVoucherType.RECEIPT);         //基金账户申购/认购
        txnToVoucherMap.put(IntTxnCd._02013.value,RclVoucherType.TRANSFER);         //基金企业理财转入
        /*===add by jianghp 20170711 end====*/

        txnToVoucherMap.put(IntTxnCd._02301.value,RclVoucherType.RECEIPT);          //一码付扫码支付

        txnToVoucherMap.put(IntTxnCd._01813.value,RclVoucherType.RECEIPT);          //云账户子账户收款
        txnToVoucherMap.put(IntTxnCd._01817.value,RclVoucherType.TRANSFER);			//对公鉴权

         /*===add by jianghp 20171217 start====*/
        txnToVoucherMap.put(IntTxnCd._02019.value,RclVoucherType.PAYMENT);         //活期宝转入
        /*===add by jianghp 20171217 end====*/

        return txnToVoucherMap;
    }

    public static RclVoucherType getVoucherTypebyTxn(String txncd){
        return translateTxntoVoucher().get(txncd);
    }

}
